Web log de Serge Boisse
On line depuis 1992 !
Test si n est une puissance de 2 :
ispow2(n) = (n && !bitand(n,n-1));
avec bitand(a,b) = (a&b)
ou encore n && !(n&(n-1))
test si n est pair : even(n) = !(n&1)
https://www.quora.com/What-is-the-coolest-thing-you-can-do-with-one-line-of-code
Le programme suivant de Mike Keith calcule le jour de la semaine pour n'importe quelle année ou mois en une seule ligne de code C :
(d+=m<3?y--:y-2,23*m/9+d+4+y/4-y/100+y/400)%7
Par exemple y=1953, m=1, d=18 → Le résultat est zéro 0 (Dimanche)
the 18 of Janvier, 1853 était un dimanche. Amazing!
Le même avec gnuplot:
#0=dimanche, 1=lundi...6=samedi
day(d,m,y)=(23*m/9+d+y+((m<3)?4+(y-1)/4-(y-1)/100+(y-1)/400:2+y/4-y/100+y/400))%7
échange des variables x et y;
x=x^y; y=y^x; x=x^y
(^
est le ou exclusif ou XOR)
Renverse une chaine récursivement :
function reverse(str) {
if ( str.length() <= 1) { return str; // stopping case }
else { return reverse(str.substring(1)) + str.charAt(0); // recursion }
cf la vidéo https://www.youtube.com/watch?v=ZRNO-ewsNcQ&ab_channel=Creel
Rappel : ici le bit 0 est le bit le moins significatif, c'est à dire le bit de droite si les bit sont numérotés de droite à gauche (cas le plus courant)
n = (1<<i)| n
n = ~(1<<i) & n
n = (1<<i) ^ n
n = (n-1)|n
n = n&(n-1)
n = ~n
; noter que -n = (~n) +1
qui est le complement à 2n & -n&1
A=(B & M) | (A & ~M)
p = (n>>a)^(n>>b) & 1 ; n ^= (p << a); n ^= (p<<b)
nbb1(n) = (n<=0)?0: 1+nbb1(n & (n-1))
gray(n) = (n^(n>>1))
ig(x) = ig2(0,floor(x));ig2(r,n) = (n<=0) ? r: ig2(r^n, n/2)
(n&1)+nbb1(gray(n))/2
nbb(n) = (n<=1)?1:1+nbb(n/2)
2**nbb(n-1)
suppose n > 0Voir aussi: Outils de développement informatique
Commentaires (0) :
Page :Ajouter un commentaire (pas besoin de s'enregistrer)
En cliquant sur le bouton "Envoyer" vous acceptez les conditions suivantes : Ne pas poster de message injurieux, obscène ou contraire à la loi, ni de liens vers de tels sites. Respecter la "netiquette", ne pas usurper le pseudo d'une autre personne, respecter les posts faits par les autres. L'auteur du site se réserve le droit de supprimer un ou plusieurs posts à tout moment. Merci !Ah oui : le bbcode et le html genre <br>, <a href=...>, <b>b etc. ne fonctionnent pas dans les commentaires. C'est voulu.